#ifndef _HAL_MANAGER_H_
#define	_HAL_MANAGER_H_

#include <Multiboot2.h>

namespace Hal
{
	class Manager
	{
	public:
		Manager();
		Manager(const Manager& orig);
		virtual ~Manager();
		
		static bool ValidateParameters(uint64_t Mb2Ptr, uint64_t Mb2Signature);
		static uint64_t GetMemoryKbs();
		static uintptr_t GetFirstAvailablePage();
		static const Multiboot2::Header &GetMb2Header();
		
		static void Halt();
		
	private:
		static Multiboot2::Header *Mb2Hdr;
	};
}

#endif	/* MANAGER_H */

